﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Acamps.Framework.BancoDados;
using Acamps.Framework.Util;
using Acamps.Web.NegocioWeb;

namespace Acamps.Web.Administrativo
{
    public partial class AtualizarQuadrante : System.Web.UI.Page
    {
        AcessoWeb acessoWeb = new AcessoWeb();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CarregarCombos();
            }
            if (Session["idAcampamentoQuadrante"] != null)
            {
                CarregarListaCampista();
            }
        }

        private void CarregarCombos()
        {
            Utilidades.SetaCombo(ddlAcampamentos, acessoWeb.AcampamentoNegocioWeb.ListarAcampamentos(true), "Descricao", "Id");
            Utilidades.SetaCombo(ddlFuncao, acessoWeb.FuncaoNegocioWeb.Listar(),"Descricao", "Id");
            Utilidades.SetaCombo(ddlEquipe, acessoWeb.CampistaNegocioWeb.ListarEquipe(),"Nome", "Id");
            Utilidades.SetaCombo(ddlTribo, acessoWeb.TriboNegocioWeb.Listar(), "Descricao", "Id");
        }

        protected void ddlAcampamentos_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            Session["idAcampamentoQuadrante"] = ddlAcampamentos.SelectedValue;
            CarregarListaCampista();
        }

        public void CarregarListaCampista()
        {
            if (Session["idAcampamentoQuadrante"] != null)
            {
                var campistas = acessoWeb.FichasNegocioWeb.ListarPorAcampamentoConfirmados(Guid.Parse(Session["idAcampamentoQuadrante"].ToString()));
                var funcao = acessoWeb.FuncaoNegocioWeb.ListarFuncaoEvento(Guid.Parse(Session["idAcampamentoQuadrante"].ToString()));

                if (campistas.Count() > 0)
                {
                    rptDados.DataSource = campistas;
                    rptDados.DataBind();

                    rptEquipe.DataSource = funcao;
                    rptEquipe.DataBind();
                }
            }
        }

        protected void btnEquipe_OnClick(object sender, EventArgs e)
        {
            try
            {
                FuncaoEvento funcaoEvento = new FuncaoEvento();

                funcaoEvento.IdEvento = Guid.Parse(ddlAcampamentos.SelectedValue);
                if (ddlTribo.SelectedValue != "")
                {
                    funcaoEvento.IdTribo = Guid.Parse(ddlTribo.SelectedValue);
                }
                else
                {
                    funcaoEvento.IdTribo = acessoWeb.TriboNegocioWeb.RetornaSemTribo().Id;    
                }
                
                funcaoEvento.IdCampista = Guid.Parse(ddlEquipe.SelectedValue);
                funcaoEvento.IdFuncao = Guid.Parse(ddlFuncao.SelectedValue);
                acessoWeb.FuncaoNegocioWeb.SalvarFuncaoEvento(funcaoEvento);
                MensagemWeb.Show(new Mensagem("Registro salvo com Sucesso.", false, null), this.Master);
                Limpar();
            }
            catch (Exception ex)
            {
                MensagemWeb.Show(new Mensagem("O registro não pôde ser salvo", true, ex), this.Master);
            }
            CarregarListaCampista();
        }

        private void Limpar()
        {
            ddlTribo.SelectedValue = "";
            ddlEquipe.SelectedValue = "";
            ddlFuncao.SelectedValue = "";
        }
    }
}